import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;

import java.awt.Font;

import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.SwingUtilities;
import javax.swing.UnsupportedLookAndFeelException;

import java.sql.*;
import java.awt.event.ItemListener;
import java.awt.event.ItemEvent;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Dialog.ModalExclusionType;
import java.awt.Dialog.ModalityType;

public class CargarPasajeros extends JDialog {

	private JPanel contentPane;
	private JTextField tipoDoc;
	private JTextField nroDoc;
	private JTextField Apellido;
	private JTextField Nombre;
	private JTextField Nacionalidad;
	
	private Connection conectdb;
	private String otroDoc;
	private JComboBox comboTipoDoc;
	private JTextField Direccion;
	private JTextField Telefono;
	private Empleado E;
	
	public CargarPasajeros (Connection db, Empleado empleado) {
		setModalityType(ModalityType.TOOLKIT_MODAL);
		setModalExclusionType(ModalExclusionType.TOOLKIT_EXCLUDE);
		
		conectdb = db;
		setResizable(false);
		otroDoc = "otro";
		E = empleado;
		try {
			javax.swing.UIManager.setLookAndFeel(javax.swing.UIManager.getSystemLookAndFeelClassName());
		} catch (ClassNotFoundException | InstantiationException
				| IllegalAccessException | UnsupportedLookAndFeelException e2) {
			// TODO Auto-generated catch block
			e2.printStackTrace();
		}
		
		
		setBounds(100, 100, 265, 297);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JLabel lblIngreseNuevoPasajero = new JLabel("Ingrese Nuevo Pasajero");
		lblIngreseNuevoPasajero.setFont(new Font("Tahoma", Font.PLAIN, 15));
		lblIngreseNuevoPasajero.setBounds(10, 11, 179, 19);
		contentPane.add(lblIngreseNuevoPasajero);
		
		JLabel lblTipoDeDocumento = new JLabel("Tipo de Documento");
		lblTipoDeDocumento.setBounds(10, 41, 110, 14);
		contentPane.add(lblTipoDeDocumento);
		
		JLabel lblNumeroDeDocumento = new JLabel("Numero De Documento");
		lblNumeroDeDocumento.setBounds(10, 66, 110, 14);
		contentPane.add(lblNumeroDeDocumento);
		
		JLabel lblApellido = new JLabel("Apellido");
		lblApellido.setBounds(10, 91, 46, 14);
		contentPane.add(lblApellido);
		
		JLabel lblNombre = new JLabel("Nombre");
		lblNombre.setBounds(10, 116, 46, 14);
		contentPane.add(lblNombre);
		
		JLabel lblNacionalidad = new JLabel("Nacionalidad");
		lblNacionalidad.setBounds(10, 191, 110, 14);
		contentPane.add(lblNacionalidad);
		
		comboTipoDoc = new JComboBox();
		comboTipoDoc.addItemListener(new ItemListener() {
			public void itemStateChanged(ItemEvent arg0) {
				controlTipoDoc();
			}
		});
		comboTipoDoc.setBounds(130, 38, 59, 20);
		contentPane.add(comboTipoDoc);
						
		tipoDoc = new JTextField();
		tipoDoc.setBounds(191, 38, 49, 20);
		contentPane.add(tipoDoc);
		tipoDoc.setColumns(10);
		
		nroDoc = new JTextField();
		nroDoc.setBounds(130, 63, 110, 20);
		contentPane.add(nroDoc);
		nroDoc.setColumns(10);
		
		Apellido = new JTextField();
		Apellido.setBounds(130, 88, 110, 20);
		contentPane.add(Apellido);
		Apellido.setColumns(10);
		
		Nombre = new JTextField();
		Nombre.setBounds(130, 113, 110, 20);
		contentPane.add(Nombre);
		Nombre.setColumns(10);
		
		Nacionalidad = new JTextField();
		Nacionalidad.setBounds(130, 188, 110, 20);
		contentPane.add(Nacionalidad);
		Nacionalidad.setColumns(10);
		
		JButton btnAceptar = new JButton("Aceptar");
		btnAceptar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				ingresar();
				
			}
		});
		btnAceptar.setBounds(10, 218, 89, 23);
		contentPane.add(btnAceptar);
		
		JButton btnCancelar = new JButton("Cancelar");
		btnCancelar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				cancelar();
			}
		});
		btnCancelar.setBounds(151, 218, 89, 23);
		contentPane.add(btnCancelar);
		
		JLabel lblDireccion = new JLabel("Direccion");
		lblDireccion.setBounds(10, 141, 46, 14);
		contentPane.add(lblDireccion);
		
		Direccion = new JTextField();
		Direccion.setBounds(130, 138, 110, 20);
		contentPane.add(Direccion);
		Direccion.setColumns(10);
		
		JLabel lblTelefono = new JLabel("Telefono");
		lblTelefono.setBounds(10, 166, 46, 14);
		contentPane.add(lblTelefono);
		
		Telefono = new JTextField();
		Telefono.setBounds(130, 163, 110, 20);
		contentPane.add(Telefono);
		Telefono.setColumns(10);
		
		initCombo();
	}
	
	private void initCombo(){
		comboTipoDoc.addItem(otroDoc);
		Statement es;
		try {
			es = conectdb.createStatement();
		
		ResultSet rs = es.executeQuery("SELECT DISTINCT doc_tipo FROM pasajeros ;");
			while (rs.next()){
				comboTipoDoc.addItem(rs.getString(1));
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	private void controlTipoDoc(){
		String item = (String) comboTipoDoc.getSelectedItem();
			if (item == otroDoc ){
				tipoDoc.setEnabled(true);
			}else
				tipoDoc.setEnabled(false);
	}
	
	private void vaciarCampos(){
		nroDoc.setText("");
		Apellido.setText("");
		Nombre.setText("");
		Direccion.setText("");
		Telefono.setText("");
		Nacionalidad.setText("");
	}
	private void ingresar(){
		String item = (String) comboTipoDoc.getSelectedItem();
		if (item == otroDoc ){
			item= tipoDoc.getText();
		}
			

		String insert = "INSERT INTO pasajeros VALUES ('"+ item +" '," + nroDoc.getText() + ", '" + Apellido.getText() + "', '"+ Nombre.getText() +"', '"+ Direccion.getText() +"', '"+ Telefono.getText() +"', '"+ Nacionalidad.getText() +"');";
		Statement insertar;
		try {
			insertar = conectdb.createStatement();
			int opcion = JOptionPane.showConfirmDialog(this, "Confirma La Creacion Del Nuevo Pasajero?");
			if (opcion == 0){
				insertar.execute(insert);					
			}
			vaciarCampos();
			E.actualizarListadoClientes();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			JOptionPane.showMessageDialog(SwingUtilities.getWindowAncestor(this),
                    e.getMessage() + "\n", 
                    "Error al ejecutar la consulta.",
                    JOptionPane.ERROR_MESSAGE);
			
		}	
	}
	
	private void cancelar(){
		this.setVisible(false);
	}
	
}
